home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / sptmbr11.lha / clx / sysdef.lisp < prev    next >
Lisp/Scheme  |  1993-01-04  |  5KB  |  165 lines

  1. ;;; -*- Mode: Lisp; Package: DSYS; Base: 10; Syntax: Common-Lisp -*-
  2.  
  3. (in-package "DSYS")
  4.  
  5. (defsystem clx
  6.     (:pretty-name "CLX")
  7.   (:module clos pcl (:type :system))
  8.   (:module clcs clcs (:type :system))
  9.   #+kcl (:module common-lisp common-lisp (:type :system))
  10.   (:parallel
  11.    #+kcl "kcl-system-patches"
  12.    #+kcl "kcl-compiler-patches"
  13.    clos
  14.    clcs
  15.    #+kcl common-lisp
  16.    (:forms :compile 
  17.        (progn
  18.          #+cmu17a
  19.          (when (find-package "XLIB")
  20.            (pcl::reset-package "XLIB"))
  21.          (setq *compile-system-proclamation* *normal-declaration*)
  22.          (proclaim *compile-system-proclamation*)
  23.          #+akcl 
  24.          (progn
  25.            (setq compiler::*compile-ordinaries* t)
  26.            (compiler::emit-fn t)
  27.            (let ((*use-default-pathname-type* nil))
  28.          (load "sys-package")
  29.          (load "sys-proclaim"))
  30.            (load (merge-pathnames "../lsp/sys-proclaim.lisp" 
  31.                       si::*system-directory*)))
  32.          #+cmu (setq c::*suppress-values-declaration* t)
  33.          #+(and unix (or excl kcl lucid)) (compile-c "socket")))
  34.    (:parallel
  35.     (:forms :compile (proclaim *fast-declaration*))
  36.     "package"
  37.     #+kcl
  38.     (:file :name "sockcl"
  39.        #+(and kcl bsd (not mips)) :link 
  40.        #+(and kcl bsd (not mips)) (format nil #-|NeXT| "~A -lc" 
  41.                               #+|NeXT| "~A -lsys_s"
  42.                           (namestring
  43.                            (merge-pathnames "socket.o"))))
  44.     #+lucid
  45.     (:forms :compile (load-socket)
  46.         :load (load-socket))
  47.     #+excl "excldep"
  48.     "depdefs"
  49.     "clx"
  50.     "dependent"
  51.     #+excl "exclcmac"            ; these are just macros
  52.     "macros"                ; these are just macros
  53.     "bufmac"                ; these are just macros
  54.     "buffer"
  55.     (:forms :compile (proclaim *normal-declaration*))
  56.     "display"
  57.     "gcontext"
  58.     "input"
  59.     "requests"
  60.     "fonts"
  61.     "graphics"
  62.     "text"
  63.     "attributes"
  64.     "translate"
  65.     "keysyms"
  66.     "manager"
  67.     "image"
  68.     "resource"
  69.     "describe"
  70.     "trace"
  71.     (:forms :compile 
  72.         (progn #+cmu (setq c::*suppress-values-declaration* nil)
  73.            #+cmu (purify))
  74.         :load
  75.         (progn #+cmu (purify))))))
  76.  
  77. #+lucid
  78. (progn
  79. (defvar *socket-loaded-p* nil)
  80.  
  81. (defun load-socket ()
  82.   (unless *socket-loaded-p*
  83.     #+apollo
  84.     (lucid::load-foreign-file
  85.      (namestring (merge-pathnames "socket"))
  86.      :preserve-pathname t)
  87.     #-apollo
  88.     (lucid::load-foreign-files
  89.      (list (namestring (merge-pathnames "socket.o")))
  90.      '("-lc"))
  91.     (setq *socket-loaded-p* t)))
  92. )
  93.  
  94. #-cmu
  95. (defun compile-c (filename)
  96.   (let* ((c-filename (concatenate 'string filename ".c"))
  97.      (o-filename (concatenate 'string filename ".o"))
  98.      (src (merge-pathnames c-filename))
  99.      (obj  (merge-pathnames o-filename))
  100.      (args (list "-c" (namestring src)
  101.              "-o" (namestring obj)
  102.              #+mips "-G 0"
  103.              #+(or hp sysv) "-DSYSV"
  104.              #+(and mips (not dec)) "-I/usr/include/bsd"
  105.              #-(and mips (not dec)) "-DUNIXCONN")))
  106.     (when (or (null (probe-file obj))
  107.           (< (file-write-date obj)
  108.          (file-write-date src)))
  109.       (format t ";;; cc~{ ~A~}~%" args)
  110.       (unless
  111.       (zerop 
  112.        #+lucid
  113.        (multiple-value-bind (iostream estream exitstatus pid)
  114.            ;; in 2.0, run-program is exported from system:
  115.            ;; in 3.0, run-program is exported from lcl:
  116.            ;; system inheirits lcl
  117.            (system::run-program "cc" :arguments args)
  118.          (declare (ignore iostream estream pid))
  119.          exitstatus)
  120.        #+(or kcl ibcl)
  121.        (system (format nil "cc~{ ~A~}" args)))
  122.     (error "Compile of ~A failed." src)))))
  123.      
  124. (defun user::compile-clx-demos ()
  125.   (compile-file (subfile '("clx" "demo") :name "hello" :type "lisp"))
  126.   (compile-file (subfile '("clx" "demo") :name "menu" :type "lisp")))
  127.  
  128. (defun user::load-clx-demos ()
  129.   (load (subfile '("clx" "demo") :name "hello"))
  130.   (load (subfile '("clx" "demo") :name "menu")))
  131.  
  132. (defparameter *clx-files*
  133.   '((("systems") "lisp"
  134.      "clx")
  135.     (("clx") "lisp"
  136.      "sysdef"
  137.      "attributes" "buffer" "bufmac" "clx" "defsystem" "depdefs" "dependent"
  138.      "display" "exclcmac" "excldep" "fonts" "gcontext" "generalock"
  139.      "graphics" "image" "input" "keysyms" "macros" "manager" "package"
  140.      "provide" "requests" "resource" "sockcl" "text" "translate"
  141.      "describe" "trace")
  142.     (("clx") "uu"
  143.      "ms-patch")
  144.     (("clx") "c"
  145.      "excldep" "socket")
  146.     (("clx") nil
  147.      "CHANGES" "README" "exclMakefile" "exclREADME")
  148.     (("clx" "debug") "lisp"
  149.      "debug" "describe" "event-test" "keytrans" "trace" "util")
  150.     (("clx" "demo") "lisp"
  151.      "bezier" "beziertest" "hello" "menu" "zoid")
  152.     (("clx" "demo") nil
  153.      "README")
  154.     (("clx" "test") "lisp"
  155.      "image" "trapezoid")
  156.     #||
  157.     (("clx" "doc") nil
  158.      "README")
  159.     (("clx" "doc") "ps"
  160.      "appa" "condition" "contents" "functions" "general" "glossary" 
  161.      "s01" "s02" "s03" "s04" "s05" "s06" "s07" "s08" "s09" "s10"
  162.      "s11" "s12" "s13" "s14" "s15" "s16" "types")
  163.     ||#
  164.     ))
  165.